L'organisation d'un site Pho standard est la suivante:
...application/ : :..appDocument.php : :..*.php :..classes/ : :..htmlDocument.php : :..*.php :..www/ : :..index.php : :..css/ : : :..styles.css : :..img/ : :..logo.jpg :..classes.php
On part du principe que le répertoire www
est la racine du site. Tous les fichiers à l'intérieur de ce répertoire sont accessibles depuis un navigateur web (sauf avis contraire du serveur web, .htaccess
, ...).
Dans le sous-répertoire css
on retrouvera ce qui concerne les feuilles de styles (y compris les images de style) et dans img
on placera les images affichées via la balise <IMG>
; c'est à dire un "document" image par opposition à une image de style qui sert uniquement à la décoration de la page.
Le projet pourra évidemment comprendre d'autres répertoires selon les besoins.
Afin d'assurer simplement et efficacement la sécurité des autres fichiers, ils seront placés en dehors de l'espace public, juste avant le répertoire www
.
On placera dans un sous-répertoires classes
toutes les classes objets du framework Pho, et dans un sous répertoire application
tous les objets spécifiques à l'application.
Le script classes.php à pour but de faire le lien entre les scripts publics comme index.php
et les sous-répertoires privés. En faisant référence à ce fichier en début de script, toutes les classes objets du framework sont accessibles:
<?php
require_once('../classes.php');
$document = new appDocument();
$document->output();
Si le site web est susceptible d'héberger plusieurs sites différents, il est possible de renommer les fichiers classes.php
et le répertoire application
avec le nom du produit.
...application1/ :..application2/ :..classes/ :..www/ : :..index1.php : :..index2.php :..application1.php :..application2.php
le fichier index1.php
utilisera le fichier ../application1.php
qui cherchera ses objets dans application1/
et classes/
.
le fichier index2.php
utilisera le fichier ../application2.php
qui cherchera ses objets dans application2/
et classes/
.